1. Field of the Invention
The present invention relates generally to data storage and in particular to write protection in storage systems.
2. Background Information
Hard disk drives are designed to store and retrieve data. With increasing capacities and higher densities, disk drives are becoming less reliable in performing such functions. Compared to server class drives (Fibre Channel and Small Computer System Interface (SCSI) drives), the lower cost Serial Advanced Technology Attachment (SATA) or Integrated Drive Electronics (IDE) drives are even less reliable in that regard.
At least three types of errors may occur. A first type involves write errors due to tracking errors. During a write operation, the disk arm carrying a transducer head must align with very accurate precision on a target disk track containing a certain physical block to record new “bits” of write data. However, tracking errors may occur due to head-track misalignment, whereby the data is written to a completely unintended track (known as a Far Off-track Write), or it is written, misaligned near, but not quite on the intended target track and “Falls In The Gap” (known as a Near Off-track Write). In the Far Off-track Write case, two physical blocks are now in error: the intended target block is not overwritten and so it contains stale data, and the unintended overwritten block has lost the data that should be there. In the Near Off-track Write case, one block is now in error: the target block is not correctly overwritten.
A second type of errors also occurs during a write operation when the bits are not changed on the intended disk track (e.g., the signal is too weak to change the magnetic setting of the bits on the disk platter). In this case, the data remaining on the disk is stale, i.e., not up-to-date with the write commands issued to the drive. These errors are called “Dropped Writes” because the bits are dropped “on the floor” and not on the platter.
Both the first and second types of write errors above are called “Undetected Write Errors” because the disk drive drops the write data in the wrong disk platter location and does not itself detect the problem.
A third type of errors is due to misaligned head placement on disk tracks when reading data. In this case, the disk drive may read the “bits” from a completely unintended track (Far Off-track Read) or from the gap (Near Off-track Read) and return incorrect data to the user or application. In addition, if the disk drive reads tracks correctly, but on the unintended target of a Far Off-track Write, incorrect data will again be returned to the user or application. In all the cases described, the disk drive typically does not detect a problem and returns a “SUCCESS” status to the user, host or application. Other error scenarios may also occur where the disk returns a SUCCESS status but the user or application gets incorrect data. All such write or read errors are termed Undetected Disk Error, or UDE.
Because the disk drive itself does not detect the errors in these cases, higher level methods are required to detect these errors at the time data is read from the disk (the possibility to detect during a write has already passed and the data cannot be checked on the disk without reading). Some of these errors are persistent, that is, every read attempt will return incorrect data (e.g., reads that occur after a dropped write where stale data is left on the disk or after a far off-track write); others are transient, that is, successive read attempts may or may not return correct data (e.g., correct writes followed by inconsistent off-track head alignment during reads, or reads after near off-track writes).